import Vue from 'vue'
import {
  Message
} from 'element-ui';
import axios from 'axios'
import store from './store'
import router from './router'

Vue.prototype.$message = Message;

// store.state.baseUrl = 'http://10.40.92.189:10500';
axios.defaults.baseURL = '/api'; //本地


// axios.defaults.headers.post['Content-Type'] = 'application/json';
// // axios.defaults.headers.post['dataType'] = 'json';
// axios.defaults.headers.common['Strict-Transport-Security'] = 'max-age=2626560';
axios.defaults.headers= Object.assign(
            {
            'Content-Type': 'application/json',
             'Strict-Transport-Security':"max-age=2626560"
            },
          )
// // 响应拦截器
axios.interceptors.response.use(
  response => {
    // 如果返回的状态码为200，说明接口请求成功，可以正常拿到数据     
    // 否则的话抛出错误
    console.log("response",response);
    if (response.status === 200) {
      return Promise.resolve(response);
    } else {
      return Promise.reject(response);
    }
  },
  // 服务器状态码不是2开头的的情况
  // 这里可以跟你们的后台开发人员协商好统一的错误状态码    
  // 然后根据返回的状态码进行一些操作，例如登录过期提示，错误提示等等
  // 下面列举几个常见的操作，其他需求可自行扩展
  error => {
        console.log("response",error);

    if (error.response.status) {
      switch (error.response.status) {
        // 404请求不存在
        case 404:
          Message.error(error.response.data.message);
          break;
          // 其他错误，直接抛出错误提示
        default:
          Message.error(error.response.data.message);
      }
      return Promise.reject(error.response);
    }
  });
export function get(path, data) {
  return axios.get(path, {
      params: data
    })
    .then((response) => {
      return response.data;
    })
}

export function post(path, data) {
  return axios.post(path, data)
    .then((response) => {
      var res = response.data
      if (res.ErrorCode == 403) {
        store.state.access_token = '';
        setTimeout(() => {
          router.push({
            path: '/'
          });
        }, 1000);
      }
      return res;
    });
}